https://leetcode.com/problems/intersection-of-two-arrays-ii/
你會得到兩組數列num1、num2 ,請回傳兩組數列的交集

一開始有想到兩種解法
第一種是先比較兩者的長度,之後把短的那組數列出現的數字對對看長的那組有沒有出現,有的話就把它記錄起來並從廠的那組數列刪掉
class Solution:
    def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
        
        if len(nums1) > len(nums2):
            nums1, nums2 = nums2, nums1
        
        ans = []
        for i in nums1:
            if i in set(nums2):
                n = nums2.pop(nums2.index(i))
                ans.append(n)
        
        return ans
第二種是先把兩組數列都排序,排完後從兩組數列的第一個數字同時比較:
class Solution:
    def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
        
        nums1.sort()
        nums2.sort()
        
        ptr1 = 0
        ptr2 = 0
        ans = []
        while ptr1 != len(nums1) and ptr2 != len(nums2):
            
            if nums1[ptr1] > nums2[ptr2]:
                ptr2 += 1
            
            elif nums1[ptr1] < nums2[ptr2]:
                ptr1 += 1
                
            else:
                ans.append(nums1[ptr1])
                ptr1 += 1
                ptr2 += 1
        
        return ans
今天題目是簡單題目,在discussion有很多蠻有趣的解法
我的解法都只是基本中的基本